package scm.erp.sale.order.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.mybatis.spring.annotation.MapperScan;
import scm.erp.sale.order.domain.Order;
import java.util.List;
@Mapper
@MapperScan("scm.erp.sale.order.mapper")
public interface OrderMapper {
    /**
     * 新增
     * @param vo
     * @return
     */
    int insert(Order.Vo vo);

    /**
     * 更新
     * @param vo
     * @return
     */
    int update(Order.Vo vo);
    /**
     * 模糊查询
     * @param searchVo
     * @return
     */
    List<Order.Entity> select(Order.SearchVo searchVo);

    /**
     * 通过id查询
     * @param id
     * @return
     */
    Order.Entity selectById(String id);

    /**
     * 移除
     * @param id
     * @return
     */
    int remove(String id);

    /**
     * 删除
     * @param id
     * @return
     */
    int delete(String id);

    /**
     * 批量移除
     * @param ids
     * @return
     */
    int removeByIds(List<String> ids);

    /**
     * 批量删除
     * @param ids
     * @return
     */
    int deleteByIds(List<String> ids);
    /**
     * 更新状态
     *
     * @param ids 主键
     * @return 结果
     */
   int updateOrderStatusDefault(List<String> ids);
    /**
     * 更新状态
     *
     * @param ids 主键
     * @return 结果
     */
   int updateOrderStatusSign(List<String> ids);
    /**
     * 更新状态
     *
     * @param ids 主键
     * @return 结果
     */
    int updateOrderStatusEntrance(List<String> ids);
    /**
     * 更新状态
     *
     * @param ids 主键
     * @return 结果
     */
    int updateOrderStatusTare(List<String> ids);
    /**
     * 更新状态
     *
     * @param ids 主键
     * @return 结果
     */
    int updateOrderStatusShipping(List<String> ids);
    /**
     * 更新状态
     *
     * @param ids 主键
     * @return 结果
     */
    int updateOrderStatusRough(List<String> ids);
    /**
     * 更新状态
     *
     * @param ids 主键
     * @return 结果
     */
    int updateOrderStatusLeave(List<String> ids);
    /**
     * 更新状态
     *
     * @param ids 主键
     * @return 结果
     */
    int updateOrderStatusFinish(List<String> ids);
    /**
     * 更新状态
     *
     * @param ids 主键
     * @return 结果
     */
    int updateOrderStatusCheck(List<String> ids);
    /**
     * 更新状态
     *
     * @param ids 主键
     * @return 结果
     */
    int updatePlanStatusApply(List<String> ids);

    Order.Entity selectByCode(String orderCode);

//    List<Plan.searchCustomerNameVo> searchCustomerName(Plan.SearchVo searchVo);
//    List<Plan.searchFreightNameVo> searchFreightName(Plan.SearchVo searchVo);

}
